unit BaseMaquinas;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Base, StdCtrls, Buttons, XPMan, ComCtrls, ToolWin, ExtCtrls;

type
  TfrmBaseMaquinas = class(TfrmBase)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    edtNroSerie: TEdit;
    edtCodCliente: TEdit;
    cmbCliente: TComboBox;
    edtDescripcion: TMemo;
    btnAceptar: TBitBtn;
    btnCancelar: TBitBtn;
    lblErrorSerie: TLabel;
    lblErrorCliente: TLabel;
    procedure ListaCliente();
    procedure cmbClienteChange(Sender: TObject);
    procedure edtCodClienteExit(Sender: TObject);
    procedure BorrarForm();
    procedure btnCancelarClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmBaseMaquinas: TfrmBaseMaquinas;

implementation

uses Datos;

{$R *.dfm}

procedure TfrmBaseMaquinas.ListaCliente;
var objeto:TCliente;
begin
  cmbCliente.Clear;
  frmDatos.qryFiltroClientes.Active:=true;
  frmDatos.qryFiltroClientes.First;
  while not frmDatos.qryFiltroClientes.Eof do
    begin
      objeto:=TCliente.Create;
      objeto.codigo := frmDatos.qryFiltroClientes['cod_cliente'];
      objeto.nombre := frmDatos.qryFiltroClientes['nombre_cliente'];
      objeto.apellido := frmDatos.qryFiltroClientes['apellido_cliente'];
      cmbCliente.Items.AddObject(objeto.apellido +' '+ objeto.nombre,objeto);
      frmDatos.qryFiltroClientes.Next;
    end;
end;

procedure TfrmBaseMaquinas.cmbClienteChange(Sender: TObject);
var recuperarObjeto:TCliente;
    indice:integer;
begin
  inherited;
  indice := cmbCliente.ItemIndex;
  recuperarObjeto:=TCliente(cmbCliente.Items.Objects[indice]);
  edtCodCliente.Text := IntToStr(recuperarObjeto.codigo);
end;

procedure TfrmBaseMaquinas.edtCodClienteExit(Sender: TObject);
var i,indice:integer;
    recuperarObjeto:TCliente;
begin
  inherited;
  indice:=-1;
  for i:=0 to cmbCliente.Items.Count-1 do
    begin
      recuperarObjeto:=TCliente(cmbCliente.Items.Objects[i]);
      if IntToStr(recuperarObjeto.codigo) = edtCodCliente.Text then
        begin
          indice:=i;
        end;
    end;

  if indice = -1 then
    begin
      cmbCliente.ItemIndex:=-1;
      cmbCliente.Text:='';
      edtCodCliente.Text := '';
    end
  else
    begin
      cmbCliente.ItemIndex:=indice;
    end;
end;

procedure TfrmBaseMaquinas.BorrarForm;
begin
  LimpiarForm();
  cmbCliente.ItemIndex:=-1;
  cmbCliente.Text := '';
  edtDescripcion.Text:='';
end;

procedure TfrmBaseMaquinas.btnCancelarClick(Sender: TObject);
begin
  inherited;
  Close;
end;

end.
